SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TCMOVI_BANC_D02]    
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS                 --*/    
/*---Sistema              : Tesoreria                  --*/    
/*---M÷dulo               : Empresa                    --*/    
/*---Programa             : Borrado de Operaci¸n       --*/    
/*---                       Movimiento Bancos (Egresos)--*/    
/*---                       Reposici¸n a Caja          --*/    
/*---Script               : tcmovi_b.sql               --*/    
/*---Nombre SP            : SP_TCMOVI_BANC_D02         --*/    
/*---Desarrollado por     : Javier Flores A.           --*/    
/*---Fecha Creaci÷n       : 03/07/1999                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versi÷n              : 7.0                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/      
/*---ModIficado 1 por     :Maribel Julca Rodriguez     --*/      
/*---Fecha ModIficaci,n   :22/01/2005                  --*/       
/*---Detalle ModIficaci,n :ingreso de campos CO_USUA_CREA, CO_USUA_MODI --*/      
/*-------------------------------------------------------*/      
    
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TCMOVI_BANC_D02                      --*/    
/*---Grant all on SP_TCMOVI_BANC_D02 to public         --*/     
/*---SP_TCMOVI_BANC_D02                                --*/    
/*-------------------------------------------------------*/    
 @ISCO_EMPR TD_VC_002,     
 @ISCO_USUA_MODI TD_VC_008_USUA,    
 @ISCO_BANC TD_VC_003,     
 @ISNU_CNTA_BANC TD_VC_020,    
 @ISAA_BNCO TD_VC_004,     
 @ISMM_BNCO TD_VC_002,     
 @ISTI_MOVI_BANC TD_VC_001,      
 @ISNU_COMP_BANC TD_VC_008,     
 @ISCO_TIPO_OPER TD_VC_003,     
 @INIM_MOVI TD_NU_016_004,    
 @IDFE_ANUL TD_DT_001,    
 @ISDE_OBSE TD_VC_100,    
 @ISNU_SOLI TD_VC_010,  
 @ISCO_UNID_CNTB TD_VC_003  
As  
Declare    
   @CNIM_CONV      TD_NU_016_004,    
   @CSCO_EMPR_DEST TD_VC_003,    
   @CSCO_CAJA_DEST TD_VC_008,    
   @CSNU_COMP_DEST TD_VC_008,    
   @CSAA_CAJA_DEST TD_VC_004,     
   @CSMM_CAJA_DEST TD_VC_002,    
   @CSTI_MOVI_DEST TD_VC_001,    
   @CSCO_TIPO_OPER TD_VC_003,    
   @VSCO_TIPO_INAN TD_VC_003,    
   @VSCO_TIPO_EGAN TD_VC_003,       
   @VSST_GEAS_ANUL TD_VC_001,    
   @VSCO_TIPO_OPE1 TD_VC_003,    
   @VSCO_TIPO_OPE2 TD_VC_003       
    
 BEGIN TRAN SP_TCMOVI_BANC_D02    
    
    SELECT @VSCO_TIPO_INAN = CO_TIPO_OPER, @VSCO_TIPO_EGAN = CO_TIPO_OPEG, @VSST_GEAS_ANUL = ST_GEAS_ANUL    
    FROM   TMPARA_TESO     
    WHERE  CO_EMPR = @ISCO_EMPR    
    
    If @VSST_GEAS_ANUL = 'N'    
       Select @VSCO_TIPO_OPE1 = @VSCO_TIPO_EGAN    
    Else        
      Select @VSCO_TIPO_OPE1 = @ISCO_TIPO_OPER    
    
    Update  TCMOVI_BANC    
    Set     TI_SITU = 'ANU',     
            DE_OBSE = @ISDE_OBSE,    
            CO_TIPO_OPER = @VSCO_TIPO_OPE1,    
            CO_USUA_MODI = @ISCO_USUA_MODI,    
            FE_USUA_MODI = GETDATE()    
    Where   CO_EMPR = @ISCO_EMPR     
    And     CO_UNID_CONC = @ISCO_UNID_CNTB   
    And     CO_BANC = @ISCO_BANC     
    And     NU_CNTA_BANC = @ISNU_CNTA_BANC     
    And     AA_BNCO = @ISAA_BNCO    
    And     MM_BNCO = @ISMM_BNCO    
    And     TI_MOVI_BANC = @ISTI_MOVI_BANC     
    And     NU_COMP_BANC = @ISNU_COMP_BANC     
    
    If @@error <> 0    
       Begin    
         Rollback tran    
         Return    
       End    
    
    
    /* Actualizando la Tabla de Solicitudes a Caja a Situaci©n APROBADAS */    
    
    Update TMSOLI_CABA    
    Set TI_SITU = 'APR', FE_LIQU = NULL,     
        CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = getdate()             
    Where CO_EMPR = @ISCO_EMPR    
    And   NU_SOLI = @ISNU_SOLI    
    
    If @@error <> 0    
       Begin    
         Rollback tran    
  Return     
       End        
    
    Declare CU_TCMOVI_BANC_D02_1 Cursor    
    For    
    Select CO_EMPR_DEST, CO_CAJA_DEST, AA_CAJA_DEST, MM_CAJA_DEST, TI_MOVI_DEST,    
           NU_COMP_DEST, IM_CONV, CO_TIPO_OPER  
    From   TDMOVI_RECA    
    Where  CO_EMPR = @ISCO_EMPR    
    And    CO_UNID_CONC = @ISCO_UNID_CNTB  
    And    CO_BANC = @ISCO_BANC    
    And    NU_CNTA_BANC = @ISNU_CNTA_BANC    
    And    AA_BNCO = @ISAA_BNCO    
    And    MM_BNCO = @ISMM_BNCO    
    And    TI_MOVI_BANC = @ISTI_MOVI_BANC    
    And    NU_COMP_BANC = @ISNU_COMP_BANC    
	And    (CO_CAJA_DEST != '' 
	And		CO_CAJA_DEST IS NOT NULL)            
    
    Open CU_TCMOVI_BANC_D02_1    
    Fetch CU_TCMOVI_BANC_D02_1 into @CSCO_EMPR_DEST, @CSCO_CAJA_DEST, @CSAA_CAJA_DEST,     
    @CSMM_CAJA_DEST, @CSTI_MOVI_DEST, @CSNU_COMP_DEST, @CNIM_CONV, @CSCO_TIPO_OPER  
    
    While (@@FETCH_STATUS = 0)    
      Begin    
        If (@@FETCH_STATUS < 0)    
           Begin    
      RAISERROR 20001 'FIN DE ARCHIVO'    
             Close CU_TCMOVI_BANC_D02_1    
      Deallocate CU_TCMOVI_BANC_D02_1    
             Rollback tran    
      Return    
           End    
    
        If @VSST_GEAS_ANUL = 'N'    
           Select @VSCO_TIPO_OPE2 = @VSCO_TIPO_INAN    
        Else        
   Select @VSCO_TIPO_OPE2 = @CSCO_TIPO_OPER    
    
        Update  TCMOVI_CAJA    
        Set     TI_SITU = 'ANU',     
                DE_OBSE = @ISDE_OBSE,    
                CO_TIPO_OPER = @VSCO_TIPO_OPE2,    
                CO_USUA_MODI = @ISCO_USUA_MODI,    
                FE_USUA_MODI = GETDATE()    
        Where   CO_EMPR = @CSCO_EMPR_DEST    
        And     CO_CAJA = @CSCO_CAJA_DEST    
        And     AA_CAJA = @CSAA_CAJA_DEST    
        And     MM_CAJA = @CSMM_CAJA_DEST    
        And     TI_MOVI = 'I'    
        And     NU_COMP_CAJA = @CSNU_COMP_DEST    
    
        If @@error <> 0    
           Begin    
             Close CU_TCMOVI_BANC_D02_1    
             Deallocate CU_TCMOVI_BANC_D02_1    
             rollback tran    
      return    
           End      
    
    
        UPDATE TDMOVI_RECA SET CO_TIPO_OPER = @VSCO_TIPO_OPE2,CO_USUA_MODI = @ISCO_USUA_MODI, FE_USUA_MODI = Getdate()           
        WHERE CURRENT OF CU_TCMOVI_BANC_D02_1    
    
       Insert into TTCAJA_ANUL (CO_EMPR, CO_CAJA, AA_CAJA, MM_CAJA, TI_MOVI, NU_COMP_CAJA,     
       CO_TIPO_OPER, FE_ANUL, ST_CONT, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)    
       Values (@CSCO_EMPR_DEST, @CSCO_CAJA_DEST, @CSAA_CAJA_DEST, @CSMM_CAJA_DEST, 'I', @CSNU_COMP_DEST,     
               @VSCO_TIPO_OPE2,  @IDFE_ANUL, 'N', @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE())    
    
       If @@error <> 0    
          Begin    
            Close CU_TCMOVI_BANC_D02_1    
            Deallocate CU_TCMOVI_BANC_D02_1    
            Rollback tran    
     Return    
          End    
    
       Fetch CU_TCMOVI_BANC_D02_1 into @CSCO_EMPR_DEST, @CSCO_CAJA_DEST, @CSAA_CAJA_DEST,     
       @CSMM_CAJA_DEST, @CSTI_MOVI_DEST, @CSNU_COMP_DEST, @CNIM_CONV, @CSCO_TIPO_OPER  
    
    End     
    
    Close CU_TCMOVI_BANC_D02_1    
    Deallocate CU_TCMOVI_BANC_D02_1    
    
    Insert into TTBANC_ANUL (CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC,     
    CO_TIPO_OPER, FE_ANUL, ST_CONT, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI, CO_UNID_CONC)    
    Values (@ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, @ISTI_MOVI_BANC, @ISNU_COMP_BANC,     
            @VSCO_TIPO_OPE1,  @IDFE_ANUL, 'N', @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE(), @ISCO_UNID_CNTB)    
    
    If @@error <> 0    
     Begin    
         Rollback tran    
         Return    
       End    
          
 Commit Tran    
    
/*------------------------ Fin ------------------------------*/  

GO
